<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Navigator</title>
</head>

<body>
  <div>
    <script>
      /* 
      locks                     返回暴露 Web Locks API 的 LockManager 对象
      mediaCapabilities         返回暴露 Media Capabilities API 的 MediaCapabilities 对象
      mediaDevices              返回可用的媒体设备
      maxTouchPoints            返回设备触摸屏支持的最大触点数
      mimeTypes                 返回浏览器中注册的 MIME 类型数组
      onLine                    返回布尔值，表示浏览器是否联网
      oscpu                     返回浏览器运行设备的操作系统和（或） CPU
      permissions               返回暴露 Permissions API 的 Permissions 对象
      platform                  返回浏览器运行的系统平台
      plugins                   返回浏览器安装的插件数组。在 IE 中，这个数组包含页面中所有<embed>元素
      product                   返回产品名称（通常是"Gecko"）
      productSub                返回产品的额外信息（通常是 Gecko 的版本）
      registerProtocolHandler() 将一个网站注册为特定协议的处理程序
      requestMediaKeySystemAccess() 返回一个期约，解决为 MediaKeySystemAccess 对象
      sendBeacon()              异步传输一些小数据
      serviceWorker             返回用来与 ServiceWorker 实例交互的 ServiceWorkerContainer
      share()                   返回当前平台的原生共享机制
      storage                   返回暴露 Storage API 的 StorageManager 对象
      userAgent                 返回浏览器的用户代理字符串
      vendor                    返回浏览器的厂商名称
      vendorSub                 返回浏览器厂商的更多信息
      vibrate()                 触发设备振动
      webdriver                 返回浏览器当前是否被自动化程序控制
      */
      console.log("platform: " + navigator.platform);
      console.log("oscpu: " + navigator.oscpu);

      //  检测插件
      console.log(window.navigator.plugins.length);
      for (let plugin of window.navigator.plugins) {
        console.log(plugin.name.toLowerCase());
      }

    </script>
  </div>
</body>

</html>